home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
apps
/
wordproc
/
japworpr.arc
/
WORDUTA3.GFA
(
.txt
)
< prev
Wrap
GFA-BASIC Atari
|
1990-08-17
|
43KB
|
2,180 lines
'
' JAPANESE WORD PROCESSOR.
'
' Programming by M.UTASHIRO START 1990/07/10
' VERSION 1.00 1990/07/28
' VERSION 1.02 1990/08/04
' VERSION 1.50 1990/08/07
' VERSION 1.51 1990/08/07
' VERSION 1.60 1990/08/14
' VERSION 1.80 1990/08/14
'
'
'
SOUND 1,15,10,5,12
SOUND 1,15,10,4,12
SOUND 1,0,0,0,0
word_version
initial
initial_data
asm_load
'
CLS
program_name
PBOX 10,370,628,395
sub_text_pic
' main_text_plane
redraw
current_cursol
key
'
> PROCEDURE key
'
DO
tinput%=INP(2)
l$=CHR$(tinput%)
' PRINT AT(1,1);tinput%
' DELAY 1
SELECT tinput%
CASE 0
CASE 1 ! CONTROL A : JIS CORD INPUT
cont_a
CASE 2 ! CONTROL B : INSERT LINE
line_ins
CASE 3 TO 4
CASE 5 ! CONTROL E : END CHARACTER
cont_e
CASE 6 TO 7
CASE 8 ! BACK SPACE
back_space
CASE 9 ! TAB
tab
CASE 10 TO 11
CASE 12 ! CONTROL L : CHANGE COLUMN
change_column
CASE 13 ! CR
transform
CASE 14 ! CONTROL N : NEW
new_file
CASE 15 ! CONTROL O : CHANGE PAGELINE
change_pageline
CASE 16 ! CONTROL P : PAGE CHARACTER
cont_p
CASE 17
CASE 18 ! CONTROL R : CR CONVERTOR
cr_conv
CASE 19
CASE 20 ! CONTROL T : SET TAB
cont_t
CASE 21 TO 23
CASE 24 ! CONTROL X : MERGE TEXT
text_merge
CASE 25 TO 26
CASE 27 ! ESCAPE
esc_quit
CASE 28 TO 30
CASE 31
cont_del
CASE 127 ! DELETE
del
CASE 128 TO 145
CASE 146
CASE 147 TO 152
CASE 153 ! alt-P
text_print
CASE 154 TO 171
CASE 172 ! alt-Z
henkan
CASE 173 TO 186
CASE 187 ! F1
hira_kata_conv
CASE 188 ! F2
kana_hira_conv
CASE 189 ! F3
lower_case
CASE 190 ! F4
upper_case
CASE 191 ! F5
no_conv
CASE 192 ! F6
undo_no_conv
CASE 193 ! F7
up_page
CASE 194 ! F8
dn_page
CASE 195 ! F9
bun_save
CASE 196 ! F10
bun_load
CASE 197 TO 198
CASE 199 ! CLR/HOME
clr_home
CASE 200 ! UP ARROW
up_arrow
CASE 201 TO 202
CASE 203 ! LEFT ARROW
left_arrow
CASE 204
CASE 205 ! RIGHT ARROW
right_arrow
CASE 206 TO 207
CASE 208 ! DOWN ARROW
dn_arrow
CASE 209
CASE 210 ! INSERT
ins
CASE 211 TO 224
CASE 225 ! UNDO
CASE 226 ! HELP
help_1
CASE 227 TO 255
DEFAULT
text1$=text1$+l$
text$=text$+l$
text_check
PRINT AT(3,23);" "
PRINT AT(3,23);text$
ENDSELECT
LOOP
'
RETURN
'
> PROCEDURE asm_load
'
RESTORE asm1
asm1:
DATA $206F,$0004,$226F,$0008,$202F,$000C,$7201,$D1C0
DATA $1091,$5288,$5289,$1091
DATA $D1FC,$0000,$004F,$5289,$5281,$B2BC,$0000,$0011,$66E6
DATA $4E75
'
FOR i%=1 TO 22
READ j%
asm$=asm$+MKI$(j%)
NEXT i%
'
asm%=V:asm$
screen%=XBIOS(2)
'
RETURN
'
> PROCEDURE change_pageline
'
current_cursol
'
DO
PRINT AT(3,23);" "
PRINT AT(3,23);"INPUT LINE PAR PAGE (2 TO 50) ";
INPUT pageline%
LOOP UNTIL pageline%>=2 AND pageline%<=50
PRINT AT(3,23);" "
PRINT AT(3,23);text$
'
current_cursol
'
RETURN
'
> PROCEDURE change_column
'
ALERT 1," CHANGE COLUMN. | TEXT ALL CLEAR ! ",1,"CANCEL| OK ",l%
IF l%=2
DO
PRINT AT(3,23);" "
PRINT AT(3,23);"INPUT COLUMN. (2 TO 38) ";
INPUT max_xposition%
LOOP UNTIL max_xposition%>=2 AND max_xposition%<=38
DEC max_xposition%
ARRAYFILL bun&(),spacechara%
BOUNDARY 0
PBOX 10,25,629,305
BOUNDARY 1
kxpos%=0 ! COLUMN POSITION OF DISPLAY
kypos%=0 ! LINE POSITION OF DISPLAY
tr%=0 ! SUB TEXT CHARACTER IS...
no1%=0 ! NUMBER OF SUB TEXT CHARACTER
refline%=0 ! REFERENCE LINE (TOP LINE OF DISPLAY)
no_conv%=0 ! NO CONVERT MODE ON/OFF
end_chara_e%=0 ! END CHARACTER ON/OFF
text$=""
redraw
current_cursol
sub_text_plane
PRINT AT(3,23);" "
ENDIF
'
RETURN
'
> PROCEDURE cont_p
'
chara1%=page_chara%
chara2%=0
check_ins
tr%=1
display_hira
tr%=0
IF kxpos%<>0
inc_yposition
current_cursol
ELSE
current_cursol
ENDIF
'
RETURN
'
> PROCEDURE text_print
'
ALERT 1," PRINTER NOT SUPPORTED | WITH version 1.0 ",1," OK ",l%
'
RETURN
'
> PROCEDURE help_1
'
PBOX 10,25,628,305
PRINT AT(3,3);"F1 : CONVERT HIRAGANA TO KATAKANA."
PRINT AT(3,4);"F2 : CONVERT KATAKANA TO HIRAGANA."
PRINT AT(3,5);"F3 : CONVERT UPPERCASE TO LOWERCASE."
PRINT AT(3,6);"F4 : CONVERT LOWERCASE TO UPPERCASE."
PRINT AT(3,7);"F5 : NO CONVERT. ( INPUT CHARACTER DIRECTLY )"
PRINT AT(3,8);"F6 : CONVERT ROMAN TO HIRAGANA."
PRINT AT(3,9);"F7 : PAGE UP. (BEFORE)"
PRINT AT(3,10);"F8 : PAGE DOWN. (AFTER)"
PRINT AT(3,11);"F9 : SAVE TEXT."
PRINT AT(3,12);"F10 : LOAD TEXT."
PRINT AT(3,16);"HIT ANY KEY, TO NEXT."
~INP(2)
PBOX 10,25,628,305
PRINT AT(3,3);"CONT-A : INPUT WITH JIS CORD."
PRINT AT(3,4);"CONT-B : INSERT LINE."
PRINT AT(3,5);"CONT-E : SHOW OR PUT THE END CHARACTER."
PRINT AT(3,6);"CONT-L : CHANGE COLUMN."
PRINT AT(3,7);"CONT-N : NEW TEXT. ( CLEAR TEXT )"
PRINT AT(3,8);"CONT-O : CHANGE PAGELINE."
PRINT AT(3,9);"CONT-P : PUT THE PAGE CHARACTER."
PRINT AT(3,10);"CONT-R : CR CONVERT."
PRINT AT(3,11);"CONT-T : SET TAB."
PRINT AT(3,12);"CONT-X : MERGE TEXT."
PRINT AT(3,13);"CONT-DEL: DELETE LINE."
PRINT AT(3,15);"ALT-P : PRINT TEXT."
PRINT AT(3,16);"ALT-Z : CONVERT HIRAGANA TO KANJI."
PRINT AT(3,19);"HIT ANY KEY, TO TEXT."
~INP(2)
BOUNDARY 0
PBOX 10,25,628,305
BOUNDARY 1
redraw
current_cursol
'
RETURN
'
> PROCEDURE cr_conv
'
ALERT 2," CR CONVERT. | ARE YOU SURE ? ",1," OK |CANCEL",l%
IF l%=1
PRINT AT(3,23);"CR CONVERT !"
'
IF end_chara_e%=1
end_c%=1
end_x%=ec_x%
end_y%=ec_y%
ELSE
end_c%=0
ENDIF
'
IF end_c%=0
end_x%=max_xposition%
end_y%=maxline%
bun&(max_xposition%,maxline%)=end_chara%
end_c%=1
ENDIF
'
IF end_c%=1
file_b$=DIR$(0)+"\WORDUTAS.BAK"
l%=1
'
IF l%=1
OPEN "O",#1,file_b$
texthead$=MKI$(version_no%)+MKI$(version_sub%)+MKI$(max_xposition%)
texthead$=LEFT$(texthead$+" ",32)
PRINT #1,texthead$;
FOR i%=0 TO end_y%
FOR j%=0 TO max_xposition%
IF i%=end_y% AND j%>end_x%
ELSE
PRINT #1,MKI$(bun&(j%,i%));
ENDIF
NEXT j%
NEXT i%
CLOSE #1
ENDIF
ENDIF
'
'
'
IF EXIST(file_b$)
ARRAYFILL bun&(),spacechara%
OPEN "I",#1,file_b$
texthead$=INPUT$(32,#1)
i%=0
j%=0
i